﻿#define _CRT_SECURE_NO_WARNINGS 1
#define HE 10086
//#include<stdio.h>

// 先声明函数原型
//void loveyou(int n);
//
//int a = HE; // 全局变量声明必须放在函数外部
////enum {A=1, B, C}; // 枚举类型声明必须放在函数外部
//enum Sex
//{
//	MALL = 3,//赋初值MALL=3
//	FEMALL,//间隔符必须是逗号
//	SECRET
//};
//int main()
//{   
//	loveyou(300);
//	printf("a = %d\n", a); // printf 语句必须放在函数体内，并且换行符应为 \n
//	printf("%d\n",MALL);
//	printf("%d\n",FEMALL);
//	printf("%d\n", SECRET);
//	//枚举常量默认从0开始依次递增
//	//
//
//	return 0;
//}
//
//// 正确实现函数
//void loveyou(int n)
//{
//	int i = 1;
//	while (i <= n) {
//		printf("I love you !%d\n", i);
//		i++;
//	}
//	printf("I love you more than %d\n", n);
//}
//#include<string.h>
//#include<stdio.h>//头文件可以有很多个
//int main()
//{
//	"Hello dashuaibi\n";
//	"I love you !\n";
//	//被双引号括起来的是字符串
//	//字符串结束的标志是\0的转义字符，不算作字符内容
//	//字符数组 - 一组相同类型的数据
//	char arr[] = "Hello dashuaibi\n";//字符数组的长度为17
//	//由单引号引起的叫一个字符，双引号引起的叫一串字符
//	//字符数组的长度是字符串长度+1
//	//arr是字符数组的首元素地址
//	//不在中括号里面写数字，编译器会自动计算来初始化
//	//"\n"算一个字符
//	char arr1[4] = "abc";     //打印abc\0,arr1停下来了因为其隐藏了\0
//	//char arr2[] = { 'a','b','c' };  //打印abc,arr2没有\0所以继续打印后面的垃圾数据直到遇到\0为止
//	char arr2[4] = { 'a','b','c','\0' };  //打印abc\0,arr2加上\0就不会打印垃圾数据了
//	printf("%s\n", arr1);
//	printf("%s\n", arr2);
//	
//	//字符数组长度arr1与arr2不同，arr1有\0，而arr2没有所以其长度分别为"4" "3"
//	//%c打印单个字符
//	//%s打印字符串
//	//方法二：求一下字符串长度
//	//strlen()函数：求字符串长度
//	//string length
//	int len = strlen("abc");
//	printf("len = %d\n", len);//3
//	//计算字符串长度时不计算\0*******************
//	 int len1 = strlen(arr1);
//	 printf("len1 = %d\n", len1);//3
//     printf("%zu\n", strlen(arr1));//3
//	 printf("%zu\n", strlen(arr2));//3
//	 //打印结果是计算之后的结果
//
//
//	return 0;
//}
#include<stdio.h>
#include<string.h>
int main()
{
	//转义字符
	//printf("c:\test\test.c");
	//\t 水平制表符
	//转义字符：转义了原来的含义
	//printf("ab\ncd");
	//\n换行，\n变成了一个转义字符
	printf("%c\n", 'a');
	printf("%c\n", '\'');
	printf("%s\n", "abc");
	printf("%s\n","a");
	




	return 0;
}